<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    var str = "abcdefghij";
        //     0123456789
    /* 
      1、charAt(n)
        描述：获取字符串中第n个字符
        参数：n，表示要获取的字符的索引
    */
    console.log(str.charAt(3)); // d
    console.log(str.charAt(12)); // 如果超出字符串的长度，则返回空字符

    /* 
      2、charCodeAt(n)
        描述：获取字符串第n个字符的对应的ASCII编码
        参数：n，表示要获取字符的索引

        记住三个值：
          A - 65
          a - 97
          0 - 48
    */
    console.log(str.charCodeAt(0)); // 97

    /* 
      3、Stirng.fromCharCode(n)
        描述：根据ASCII编码获取对应的字符
        参数：n，表示要获取字符的ASCII编码
    */
    console.log(String.fromCharCode(97)); // a

    /* 
      案例：
        生成一个A-Z、a-z、0-9的字符串
    */
    var str = "";
    // 大写A - ZZ
    for(var i = 65; i <= 90; i++) {
      str += String.fromCharCode(i);
      // console.log(str); 拼接的过程
    }
    // 小写a - z
    for(var i = 97; i <= 122; i++) {
      str += String.fromCharCode(i);
    }
    // 0-9
    for(var i = 48; i <= 57; i++) {
      str += String.fromCharCode(i);
    }
    console.log(str);

    /* 
      4、indexOf("指定字符")
      描述：从字符串头部开始查找指定字符第一次出现的位置(位置表示索引值)，没有返回-1
      参数1：指定字符
      参数2：可选参数，表示从指定位置开始查找，包含指定位置
    */
   var str1 = "aabbccddee";
    //         012
   console.log(str1.indexOf("b")); // 2
   console.log(str1.indexOf("b", 2)); // 2

   var str2 = "你好零零七，我是零零发，他是零零狗";
   console.log(str2.indexOf("零")); // 2
   console.log(str2.indexOf("零", 5)); // 8
   console.log(str2.indexOf("十")); // -1

   // 给字符串去除重复字符
   var str3 = "aabbccddee";
   var str4 = ""; // 把str3中符合要求的字符放进str4中使用
   for(var i = 0; i < str3.length; i++) {
      // 判断str4中有没有指定字符，如果str4中没有对应的字符，将其拼接到str4中
      if(str4.indexOf(str3[i]) === -1) {
        str4 += str3[i];
      }
   }
   console.log(str4);
  </script>
</body>
</html>